/**
 * Clase PantallaReset: esta es la pantalla que vera el paciente cuando
 * desee limpiar su informacion privada de identificacion almacenada localmente en el rms
 */

package infbmobile.pantallas;

// Importaciones externas
import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.layouts.*;
import com.sun.lwuit.events.ActionListener;

// Importaciones internas
import infbmobile.main.*;
import infbmobile.almacenamiento.*;
import infbmobile.util.UIHerramientas;


public class PantallaReset extends Form implements ActionListener {
    // Referencia al midlet principal
    public InfBMobile midlet;

    // Atributos de clase
    private TextField dni;
    private Command comandoLimpiar;
    private Command comandoVolver;


    /*
     * Constructor principal de la clase
     */
    public PantallaReset(InfBMobile midlet) {
        super("Reset de Informacion - HospiGest Pacientes");
        this.midlet=midlet;
        // Nada mas empezar cargamos la alerta al usuario
        UIHerramientas.mostrarAviso("Atencion!!!","Va a proceder usted a resetear o limpiar sus parametros de identificacion. La aplicacion se cerrara y la proxima vez que desee entrar, necesitara volver a identifcarse");
        // Definimos el layout del formulario
        setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        // Creamos y agregamos los componentes especificos de la pantalla
        dni=new TextField(CENTER);
        dni.setConstraint(TextField.ANY);
        addComponent(UIHerramientas.crearPareja("dni: ",dni));
        // Configuramos los comandos
        comandoVolver=new Command("Volver");
        addCommand(comandoVolver);
        comandoLimpiar=new Command("Limpiar");
        addCommand(comandoLimpiar);
        setCommandListener(this);
    }

    public void actionPerformed(ActionEvent evento) {
        Object fuente=evento.getSource();

        // Recogemos de donde vino el evento
        if(fuente==comandoLimpiar){
            // Obtenemos el dni introducido
            String dniIntroducido=dni.getText();
            Identificacion.cargar();
            // Comprobamos el dni introducido con el cargado del rms
            if(dniIntroducido.equalsIgnoreCase(Identificacion.getDni())){
                // Borramos todo parametro de identificacion del paciente
                // y salimos de la aplicacion
                Identificacion.borrar("identificacion");
                Identificacion.borrar("sesion");
                UIHerramientas.mostrarAviso("Operacion OK", "La informacion personal ha sido correctamente eliminada. Se va a proceder a cerrar la aplicacion.");
                midlet.salir();
            }else{
                // El dni introducido no coincide con el almacenado en el RMS
                UIHerramientas.mostrarAviso("Error","El dni que ha introducido no coincide con el necesario para iniciar el proceso de reset de parametros de identificacion.");
            }
        }else if(fuente==comandoVolver){
            // Liberamos memoria y volvemos al menu principal
            System.gc();
            midlet.mostrarPantallaMenuPrincipal();
        }
    }

}